#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll ksm(ll x,ll y) {
    if(x==1) return 1;
    ll res=1,base=x;
    while(y) {
        if(y&1) res=(res*base)%19930726;
        base=(base*base)%19930726;
        y>>=1;
    }
    return res;
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    
    ll n,k;
    cin>>n>>k;
    string s;
    cin>>s;

    vector<ll> r(n,1);
    vector<ll> cnt(n+1,0);
    ll rr=-1,rc=-1;
    for(ll i=0;i<s.size();i++){
        ll tr=i<rr?min(r[rc*2-i],rr-i):1;
        while(i+tr<s.size()&&i-tr>=0){
            if(s[i-tr]==s[i+tr])tr++;
            else break;
        }
        r[i]=tr;
        if(i+tr>rr){
            rr=i+tr;
            rc=i;
        }
        cnt[tr*2-1]++;
    }

    // for(ll i=0;i<s.size();i++){
    //     cout<<s[i]<<' ';
    // }
    // cout<<'\n';
    // for(ll i=0;i<r.size();i++){
    //     cout<<r[i]<<' ';
    // }
    // cout<<'\n';
    // for(ll i=1;i<=n;i++){
    //     cout<<cnt[i]<<' ';
    // }
    // cout<<'\n';

    ll res=1;
    ll sum=0;
    for(ll i=n; i>=1; --i) {
        if(i%2==0) continue;
        sum+=cnt[i];
        if(k>=sum) {
            res=(res*ksm(i,sum))%19930726;
            k-=sum;
        } else {
            res=(res*ksm(i,k))%19930726;
            k-=sum;
            break;
        }
    }
    if(k>0) res=-1;
    cout<<res;
    return 0;
}
